#ifndef __SAVE_BMP_h__
#define __SAVE_BMP_h__

#include <stdint.h>

#define WIDTH 800
#define HEIGHT 480
#define RIGHT_MARGIN 100 // 右边框的宽度

// 定义BMP文件头和信息头的结构体
typedef struct
{
    uint16_t bfType;      // 位图文件的类型，必须为BM
    uint32_t bfSize;      // 位图文件的大小
    uint16_t bfReserved1; // 保留字
    uint16_t bfReserved2; // 保留字
    uint32_t bfOffBits;   // 位图数据的起始位置
} __attribute__((packed)) BITMAPFILEHEADER;

typedef struct
{
    uint32_t biSize;         // 本结构所占字节数
    int32_t biWidth;         // 位图的宽度
    int32_t biHeight;        // 位图的高度
    uint16_t biPlanes;       // 目标设备的级别
    uint16_t biBitCount;     // 每个像素所需的位数
    uint32_t biCompression;  // 位图压缩类型
    uint32_t biSizeImage;    // 位图的大小
    int32_t biXPelsPerMeter; // 水平分辨率
    int32_t biYPelsPerMeter; // 垂直分辨率
    uint32_t biClrUsed;      // 颜色表中的颜色数
    uint32_t biClrImportant; // 重要的颜色数
} __attribute__((packed)) BITMAPINFOHEADER;

int save_screen_shot_as_bmp(int (*lcd_mmap)[WIDTH], const char *save_name, char *account);


#endif